package com.itheima.d2_byte_stream;

import java.io.*;

public class FileCopy {
    public static void main(String[] args) throws IOException {

        File src = new File("day09file-io-app/img1/1.jpg");
        File dest = new File("day09file-io-app/img2/1.jpg");

        copyFile(src, dest);

    }


    /*
    //将源文件复制到目标文件中
    src 原文件
    dest 目标文件
     */
    public static void copyFile(File src, File dest) {
        //完成文件拷贝
        //1创建字节输入流关联原文件，字节输出流关联目标文件
        FileInputStream fis=null;
        FileOutputStream fos=null;

        try {
            fis = new FileInputStream(src);
            fos = new FileOutputStream(dest);
            //2完成输入读取原文件到内存及输出流将内存的字节数据写出
            int len;//保存每次读取有效的字节个数
            byte[] buf = new byte[1024];//每次可以拷贝1024个字节

            while ((len =fis.read(buf))!=-1){
                fos.write(buf,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //3资源释放
            //先开后关
            try {
                if (fis!=null){
                fos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                if (fis!=null){
                    fis.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
